package org.fastsyncer.plugin;

import java.util.List;
import java.util.Map;

import org.fastsyncer.common.entity.MappingTask;

public interface Convert {

    /**
     * 获取转换器名称
     */
    String getConvertName();
    
    /**
     * 全量数据转换
     * @param task 驱动配置
     * @param source 数据源
     * @param target 目标源
     */
    void convert(MappingTask task, List<Map<String, Object>> source, List<Map<String, Object>> target);
    
    /**
     * 增量数据转换
     * @param task 驱动配置
     * @param source 数据源
     * @param target 目标源
     * @param event 事件新增INSERT、修改UPDATE、删除 DELETE
     * @param beforeData 变化前数据
     */
    void convert(MappingTask task, Map<String, Object> source, Map<String, Object> target, String event, Map<String, Object> beforeData);
    
}
